package de.graph.common;

/**
 * An edge links two vertices. 
 *
 * e.g. source ---label---> target.
 */
public interface Edge extends Element {

	/**
	 * Return the vertex on the tail of the edge.
	 * 
	 * @return the tail vertex
	 */
	public Vertex getTargetVertex();

	/**
	 * Return the vertex on the head of the edge.
	 * 
	 * @return the head vertex
	 */
	public Vertex getSourceVertex();

	/**
	 * Return <code>true</code> if edge is directed, <code>false</code>
	 * otherwise.
	 * 
	 * @return boolean - <code>true</code> if edge is directed
	 */
	public boolean isDirected();
}
